иностранный
Вы устали от медленного API, делающего ваш
приложения тормозят ты прав
место в сегодняшнем видео мы собираемся
изучить семь методов оптимизации
которые могут помочь вашему API работать на своих
лучший
мы все были там вы построили
потрясающий API, но он не такой быстрый, как
тебе это нравится, но не волнуйся, мы
здесь, чтобы помочь
Прежде чем мы начнем, важно отметить
что оптимизация не должна быть
первый шаг в вашем процессе
оптимизация мощная, но она может привести
к ненужной сложности вы сделали
преждевременно первый шаг должен всегда
выявить фактические узкие места
посредством нагрузочного тестирования и профилирования
запросы начинают оптимизацию только один раз
вы подтвердили, что конечная точка API
имеет проблемы с производительностью
с учетом сказанного давайте перейдем к советам
во-первых, кэширование этой техники является одним из
из самых эффективных способов ускорить
ваш апис путем кеширования восстановить результат
дорогостоящих вычислений, так что мы
может использовать его снова позже без необходимости
повторить вычисление
если у вас есть конечная точка, которая
часто используется с одним и тем же
параметры запроса, которых можно избежать
повторяющиеся обращения к базе данных путем кэширования
ответ в redis или memcachd
большинство кэширующих библиотек упрощают
добавить с помощью всего нескольких строк кода даже
короткий период кэширования может сделать
существенная разница в скорости
следующее соединение, опрашивающее это
методика оптимизации включает
поддержание пула открытых соединений
а не открывать новую базу
соединение для каждого вызова API
каждый раз создавать новое соединение
включает в себя множество протоколов рукопожатия
и настройка, которая может замедлить работу вашего API
это будет использование соединения может значительно
улучшить пропускную способность
если вы используете безсерверный
управление соединением с архитектурой может
быть немного более сложным
это потому, что каждая бессерверная функция
экземпляр обычно открывает свой собственный
подключение к базе данных и потому что
serverless может быстро масштабироваться, это может
потенциально может привести к большому количеству
открытые связи, которые могут подавлять
база данных
Такие решения, как прокси-сервер AWS RDS и azure
Бессерверные базы данных SQL предназначены для
справиться с этой ситуацией и управлять
опрос соединения для вас
тесно связан с производительностью базы данных
наш третий совет — избегать М плюс один
проблемы с запросом, например, скажем, вы
создают конечную точку API для извлечения
сообщения в блоге и их комментарии M plus
одна проблема возникнет, если вы сначала сделали
запрос, чтобы получить сообщение и ввести для
каждый пост вы можете получить еще один запрос
его комментарии теперь, если у вас есть M сообщений
это приведет к одному запросу для
сообщения плюс n запросов для комментариев
отсюда термин и плюс одна проблема
чтобы избежать этого, более эффективно
получить данные в одном запросе или в
в некоторых случаях два запроса один для получения
сообщения и один, чтобы получить все комментарии
для этих сообщений есть голос, делающий
отдельный запрос для каждого комментария к посту
и может значительно уменьшить количество
обращений к базе данных туда и обратно
улучшает производительность
переходя к нашему четвертому совету
с помощью пагинации
если ваш ответ API возвращает большое
объем данных, который вы можете замедлить
вместо этого разбейте ответ на более мелкие
более управляемые страницы с использованием ограничений и
параметры смещения, это может ускорить данные
передача и уменьшение на клиенте
сторона
наша пятая техника заключается в использовании
легкие сериализаторы Json
при возврате ответов Json из вашего
API скорость вашей сериализации
процесс может иметь заметное значение
время отклика
рассмотрите возможность использования быстрой сериализации
библиотека для минимизации затрат времени
преобразование ваших данных в формат Json
для нашей шестой техники у нас есть
компрессия
включив сжатие на больших API
полезной нагрузки ответа, вы можете уменьшить
количество передаваемых данных по сети
затем клиент распаковывает данные
сейчас они еще эффективнее
алгоритмы, такие как брокколи, которые обеспечивают
лучшая степень сжатия также много
сети доставки контента, такие как
cloudflare может обрабатывать сжатие для
вы разгружаете эти задачи со своего
сервер
наконец, у нас есть асинхронный вход в систему
много приложений время, необходимое для
запись журналов незначительна, однако в высоком
пропускные системы, где каждый
миллисекунда считает время, затраченное на
журналы записи могут складываться в таких случаях
асинхронный вход может помочь в этом
включает основной поток приложения
быстро помещая запись журнала в
буфер в памяти, а отдельный
поток регистрации записывает журналы в
файл или отправить их в службу ведения журнала
просто имейте в виду, что с асинхронным
ведение журнала есть небольшой шанс, что вы могли бы
потерять некоторые журналы, если ваше приложение
вылетает до того, как журналы
написано
и вот вам семь советов, которые помогут
сделать ваш API быстрее и эффективнее
если у вас есть какие-либо другие методы, которые
вы нашли полезным дайте нам знать в
Комментарии
если вам нравятся наши видео, вам может понравиться наш
информационный бюллетень по проектированию систем, а также
охватывает темы и тенденции в крупномасштабных
дизайну системы доверяют 450 000 читателей
подпишитесь на этот блог Dot bygo.com